package simAnlage;

import verbindung.DBDCallback;
import verbindung.DBDSingleton;


public class SimWeiche extends SimAnlageObjekt implements DBDCallback{

	boolean bauartLinks;
	
	public SimWeiche(int id, String varsoll, String varist, String belegt) {
		super(id, varsoll, varist, belegt);
		
		DBDSingleton.getClient().subscribeVar(varsoll, this);
	}

	
	@Override
	public void init()
	{
		super.init();
		
		int weichenstellung = DBDSingleton.getClient().getVar(varist);
		
		System.out.println(weichenstellung + " iw");
		if(weichenstellung==1)
			aktNachfolger=nachfolger1;
		else if(weichenstellung==2)
			aktNachfolger=nachfolger2;
	}


	@Override
	public void neuerWagen(SimWagen wagen, SimAnlage anlage)
	{
		super.neuerWagen(wagen, anlage);
		
		DBDSingleton.getClient().setVar(belegt, 2);
	}

	@Override
	protected void verlasseWagen(SimWagen wagen)
	{
		DBDSingleton.getClient().setVar(belegt, 1);
		
	}


	private int getLinks()
	{
		if (bauartLinks) return 2;
		else return 1;
	}

	private int getRechts()
	{
		if (bauartLinks) return 1;
		else return 2;
	}
	
	public void call(String var, int value)
	{
		if(varsoll.toUpperCase().equals(var))
		{
			if(value==1)
			{
				aktNachfolger=nachfolger1;
				DBDSingleton.getClient().setVar(varist, value);
			}
			if(value==2)
			{
				aktNachfolger=nachfolger2;
				DBDSingleton.getClient().setVar(varist, value);
			}
		}
	}

	
}
